// components/classic/music/index.js
import { classicBeh } from '../classic-beh.js'

//音乐管理对象

const mMgr=wx.getBackgroundAudioManager()

Component({
  /**
    *公共属性 vuex 
    */
  behaviors: [
    classicBeh
  ],
  /**
   * 组件的属性列表
   */
  properties: {
    src:String,
    title:String
  },

  /**
   * 组件的初始数据
   */
  data: {
    pauseSrc: 'images/player@pause.png',
    playSrc: 'images/player@play.png',
    playing:false
    
  },
  //生命周期函数不能加 methods 关键字
  attached(event){
    this._recoverStatus()
    this._monitorSwitch()
  },
  //组件消失生命周期
  detached(event){
    // mMgr.stop()
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onPlay(event){
      //图片切换
      if(!this.data.playing){
        this.setData({playing: true})
        mMgr.title = this.properties.title
        mMgr.src = this.properties.src
        mMgr.play()
      }else{
        this.setData({playing: false})
        mMgr.pause()
      }
    },
    //检测当前组件音乐播放状态
    _recoverStatus() {
      console.log("44")
      if (mMgr.paused) {// 暂停
        this.setData({playing: false})
        return
      }
      //当前播放的音乐是否时组件的音乐
      if (mMgr.src == this.properties.src) {
        this.setData({playing:true})
      }
    },
    //悬浮音乐播放器组件监听
    _monitorSwitch(){
      mMgr.onPlay(() => {// 播发
        this._recoverStatus()
      })
      mMgr.onPause(() => {// 暂停
        this._recoverStatus()
      })
      mMgr.onStop(() => {// 关闭音乐浮窗 
        this._recoverStatus()
      })
      mMgr.onEnded(() => {// 自然音乐播发完成
        this._recoverStatus()
      })
    }
  },
})
